www.gusucode.com > Matlab在化学工程中的应用 > Matlab在化学工程中的应用/实用化工计算机模拟-Matlab在化学工程中的应用/Examples/Chapter 5/CylindCat2.m
function CylindCat2 % 计算圆柱状催化剂颗粒中进行一级反应的浓度分布 % % Author: HUANG Huajiang % Copyright 2003 UNILAB Research Center, % East China University of Science and Technology, Shanghai, PRC % $Revision: 1.0 $ $Date: 2003/07/03 $ clear all clc % 1.问题定义及参数初始化 g = 'CylindCat2g'; % 定义求解域 b = 'CylindCat2b'; % 定义边界条件 c = 'x'; a = 0; f = '-9*x.*u'; % f = '-9*x.*u.*exp(3*(1-u)./(1+0.1*(1-u)))'; % 2.网格化(三角形网格划分及网格细化) [p,e,t] = initmesh(g); % 网格初始化 [p,e,t] = refinemesh(g,p,e,t); % 网格细化 p = jigglemesh(p,e,t); % 3.绘制PDE三角形网格 pdemesh(p,e,t); % 4.求解PDE [u,res] = pdenonlin(b,p,e,t,c,a,f); uxy(1) = tri2grid(p,t,u,0.394,0.285); uxy(2) = tri2grid(p,t,u,0.394,0.765); uxy(3) = tri2grid(p,t,u,0.803,0.285); uxy(4) = tri2grid(p,t,u,0.803,0.765); % 5.显示结果(包括绘图) x = [0:0.01:1]; % x = 0~1 % 绘制y = 0.75时的c~x关系图 for i=1:length(x) ux(i) = tri2grid(p,t,u,x(i),0.75); end figure plot(x,ux) xlabel('x') ylabel('c') title('y = 0.75') % 浓度分布图 figure pdesurf(p,t,u) colorbar xlabel('x') ylabel('y') zlabel('c') fprintf('在位置(r,z)=(0.394,0.285)、(0.394,0.765)、(0.803,0.285)、(0.803,0.765)上的浓度分别为:\n') fprintf('\t%.3f',uxy)